using System;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;

public class UIPanelMain : MonoBehaviour
{
    public Transform m_list;
    public Transform m_btn_total;
    public Button m_btn_openlist;
    public Button m_btn_tips;
    public Button m_btn_quit;

    public GameObject m_img_frame;
    public Text m_txt_tips;

    private bool _isOpenList = true;

    private void Start()
    {
        SetTxtTips(StarManager.m_Intance.m_curSolarName);
        m_btn_openlist.onClick.AddListener(OnClickBtnOpenList);
        m_btn_tips.onClick.AddListener(OnClickBtnTips);
        m_btn_quit.onClick.AddListener(OnClickBtnQuit);
    }

    private void OnClickBtnQuit()
    {
        Application.Quit();
    }

    private void OnClickBtnOpenList()
    {
        m_list.DORotate(_isOpenList ? new Vector3(0, 90, 0) : Vector3.zero, 1f);
        m_btn_total.DORotate(_isOpenList ? new Vector3(90, 0, 0) : Vector3.zero, 1f);
        _isOpenList = !_isOpenList;
    }

    private void OnClickBtnTips()
    {
        m_img_frame.SetActive(!m_img_frame.activeSelf);
    }

    public void SetTxtTips(ESolarName pName)
    {
        m_txt_tips.text = GetTipsBySolarName(pName);
    }

    private string GetTipsBySolarName(ESolarName pName)
    {
        var str = string.Empty;
        switch (pName)
        {
            case ESolarName.None:
                str = "太阳系（SolarSystem），是质量很大的太阳，以其巨大的引力维持着周边行星、卫星、小行星和彗星绕其运转的天体系统。";
                break;
            case ESolarName.Sun:
                str = "太阳(Sun)是太阳系的中心天体，占有太阳系总体质量的99.86%。太阳系中的八大行星、小行星、流星、彗星、外海王星天体以及星际尘埃等，都围绕着太阳公转，而太阳则围绕着银河系的中心公转。\n太阳是位于太阳系中心的恒星，它几乎是热等离子体与磁场交织着的一个理想球体。太阳直径大约是1392000（1.392×10⁶）千米，相当于地球直径的109倍；体积大约是地球的130万倍；其质量大约是2×10³⁰千克（地球的330000倍）。从化学组成来看，现在太阳质量的大约四分之三是氢，剩下的几乎都是氦，包括氧、碳、氖、铁和其他的重元素质量少于2%，采用核聚变的方式向太空释放光和热。";
                break;
            case ESolarName.Mercury:
                str =
                    "水星（英文名：Mercury）最接近太阳，是太阳系中体积和质量最小的行星。常和太阳同时出没，中国古代称之它为“辰星”。水星在直径上小于两个卫星——木卫三和土卫六。";
                break;
            case ESolarName.Venus:
                str = "金星（英文名：Venus）是离太阳第二近的行星，太阳系中第六大行星。在所有行星中，金星的轨道最接近圆，偏差不到1%。";
                break;
            case ESolarName.Earth:
                str = "地球（英文名：Earth）我们的家园，是太阳系从内向外第三颗行星，也是太阳系第五大行星、最大的岩石行星。";
                break;
            case ESolarName.Mars:
                str = "火星（英文名：Mars）为距太阳第四远，也是太阳系中第七大行星，在中国古代又称荧火，因为火星呈红色，荧荧像火，亮度常有变化；而且在天空中运动，有时从西向东，有时又从东向西，情况复杂，令人迷惑，所以中国古代叫它“荧惑”，有“荧荧火光，离离乱惑。”之意，而火星倒行这一视觉现象又被称为“荧惑守心”。";
                break;
            case ESolarName.Jupiter:
                str = "木星（英文名： Jupiter）是离太阳第五颗行星，而且是最大的一颗，比所有其他的行星的和质量大2.5倍（地球的318倍）。";
                break;
            case ESolarName.Saturn:
                str = "土星（英文名：Saturn）土星是离太阳第六远的行星，也是八大行星中第二大的行星，中国古代称为“镇星”，是太阳系密度最小的行星，可以浮在水上。";
                break;
            case ESolarName.Uranus:
                str = "天王星（英文名：Uranus）天王星是太阳系中离太阳第七远行星，也是太阳系中最冷的行星，从直径来看，是太阳系中第三大行星。天王星的体积比海王星大，质量却比其小。";
                break;
            case ESolarName.Neptune:
                str = "海王星（英文名：Neptune）海王星是环绕太阳运行的第八颗行星，也是太阳系中第四大天体（直径上）。海王星在直径上小于天王星，但质量比它大。";
                break;
            default:
                throw new ArgumentOutOfRangeException(nameof(pName), pName, null);
        }

        return str;
    }
}
